﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing; //for color
using Microsoft.DirectX.Direct3D; //Does not like .VertexFormats;?
using Microsoft.DirectX;
using System.Runtime.InteropServices;// for System.Runtime.InteropServices.MarshalAs

///SOME OF THIS SALVAGED FROM THE METADATA IN Mesh.CustomVertex, essentially.

namespace DirectX_CS
{

	public struct Vector3 
	{
		//public Vector3()
		//{
		//    Color = System.Drawing.Color.Black.ToArgb();
		//}

		//public static int Format = 82;

		//public int Color; 

	    // Summary:
		//     Retrieves or sets the vertex color.
		//public int Color
		//{
		//    get { return mColor; }
		//    set { mColor = value; }
		//}
		// Summary:
		//     Retrieves or sets the nx component of the vertex normal.
		// Summary:
		//     Retrieves or sets the x component of the position.
		public float X;
		// Summary:
		//     Retrieves or sets the y component of the position.
		public float Y;
		// Summary:
		//     Retrieves or sets the z component of the position.
		public float Z;
		
		//public float Nx;
		// Summary:
		//     Retrieves or sets the ny component of the vertex normal.
		//public float Ny;
		// Summary:
		//     Retrieves or sets the nz component of the vertex normal.
		//public float Nz;
	
		#region "Old notes [need reference*]"	
	/// <summary>
	/// ///////////////////////////////
	/// </summary>
		#endregion "Old notes [need reference*]"	

		//Expose the Normal as Vector3.
		/*public Vector3 Normal 
		{ 
			//Note all 3 three float values.
			get { return new Vector3((float) Nx, (float)Ny, (float) Nz);}
			set { Nx = value.X; Ny = value.Y; Nz = value.Z ; }
		}*/
		/*
		///
		///Summary:
		///     Retrieves or sets the vertex position. Ref?
		public Vector3 Position 
		{ 
			get 
			{
				//xynz are floats
				return new Vector3(X, Y, Z);
			}
			set
			{
				Vector3 buff = value;
				X = buff.X;
				Y = buff.Y;
				Z = buff.Z;
			}
		} 
		*/
	} 
}
